package cn.edu.fudan.bdke.ncov.qa;

import cn.edu.fudan.bdke.ncov.qa.model.AbsLogicForm;

import java.util.List;

/**
 * 问答系统构建方法基类
 *
 * @author xym
 * @since 1.0
 */
public interface AbsQaBuilder {
    /**
     * 将自然语言问句转换为逻辑表示
     *
     * @param question 问句
     * @return logic form
     */
    AbsLogicForm naturalLanguage2LogicForm(String question);

    /**
     * 将逻辑表示转换为查询语言
     *
     * @param logicForm 逻辑形式
     * @return 数据库查询语言
     */
    String logicForm2Query(AbsLogicForm logicForm);

    /**
     * 查询相应的数据库并返回结果
     *
     * @param query 查询语言
     * @return 结果
     */
    List<String> searchResult(String query);
}
